﻿//HintName: WrapperExtensions.g.cs
namespace Bunit.Web.AngleSharp;

/// <summary>
/// Provide helpers for wrapped HTML elements.
/// </summary>
[System.CodeDom.Compiler.GeneratedCodeAttribute("Bunit.Web.AngleSharp", "1.0.0.0")]
public static class WrapperExtensions
{

/// <summary>
/// Provide wrapper to be used when elements re-render.
/// </summary>
	public static global::AngleSharp.Dom.IElement WrapUsing<TElementFactory>(this global::AngleSharp.Dom.IElement element, TElementFactory elementFactory) where TElementFactory : Bunit.Web.AngleSharp.IElementWrapperFactory => element switch
	{
		global::AngleSharp.Html.Dom.IHtmlAnchorElement e => new HtmlAnchorElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlSlotElement e => new HtmlSlotElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlSelectElement e => new HtmlSelectElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlScriptElement e => new HtmlScriptElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlQuoteElement e => new HtmlQuoteElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlProgressElement e => new HtmlProgressElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlPreElement e => new HtmlPreElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlSourceElement e => new HtmlSourceElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlPictureElement e => new HtmlPictureElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlParagraphElement e => new HtmlParagraphElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlOutputElement e => new HtmlOutputElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlOrderedListElement e => new HtmlOrderedListElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlOptionsGroupElement e => new HtmlOptionsGroupElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlOptionElement e => new HtmlOptionElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlObjectElement e => new HtmlObjectElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlParamElement e => new HtmlParamElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlModElement e => new HtmlModElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlSpanElement e => new HtmlSpanElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableCaptionElement e => new HtmlTableCaptionElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlUnorderedListElement e => new HtmlUnorderedListElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlUnknownElement e => new HtmlUnknownElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTrackElement e => new HtmlTrackElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTitleElement e => new HtmlTitleElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTimeElement e => new HtmlTimeElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTextAreaElement e => new HtmlTextAreaElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlStyleElement e => new HtmlStyleElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTemplateElement e => new HtmlTemplateElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableRowElement e => new HtmlTableRowElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableHeaderCellElement e => new HtmlTableHeaderCellElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableElement e => new HtmlTableElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableDataCellElement e => new HtmlTableDataCellElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableColumnElement e => new HtmlTableColumnElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableCellElement e => new HtmlTableCellElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlTableSectionElement e => new HtmlTableSectionElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlMeterElement e => new HtmlMeterElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlMetaElement e => new HtmlMetaElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlMenuItemElement e => new HtmlMenuItemElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlEmbedElement e => new HtmlEmbedElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlDivElement e => new HtmlDivElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlDialogElement e => new HtmlDialogElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlDetailsElement e => new HtmlDetailsElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlDataListElement e => new HtmlDataListElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlDataElement e => new HtmlDataElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlFieldSetElement e => new HtmlFieldSetElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlCommandElement e => new HtmlCommandElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlButtonElement e => new HtmlButtonElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlBreakRowElement e => new HtmlBreakRowElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlBodyElement e => new HtmlBodyElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlBaseElement e => new HtmlBaseElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlAudioElement e => new HtmlAudioElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlAreaElement e => new HtmlAreaElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlCanvasElement e => new HtmlCanvasElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlVideoElement e => new HtmlVideoElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlFormElement e => new HtmlFormElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlHeadingElement e => new HtmlHeadingElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlMenuElement e => new HtmlMenuElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlMediaElement e => new HtmlMediaElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlMarqueeElement e => new HtmlMarqueeElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlMapElement e => new HtmlMapElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlListItemElement e => new HtmlListItemElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlLinkElement e => new HtmlLinkElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlLegendElement e => new HtmlLegendElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlLabelElement e => new HtmlLabelElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlKeygenElement e => new HtmlKeygenElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlInputElement e => new HtmlInputElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlInlineFrameElement e => new HtmlInlineFrameElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlImageElement e => new HtmlImageElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlHtmlElement e => new HtmlHtmlElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlHrElement e => new HtmlHrElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlHeadElement e => new HtmlHeadElementWrapper(e, elementFactory),
		global::AngleSharp.Html.Dom.IHtmlElement e => new HtmlElementWrapper(e, elementFactory),
		global::AngleSharp.Dom.IElement e => new ElementWrapper(e, elementFactory),
		_ => new ElementWrapper(element, elementFactory),
	};
}
